package com.yzt.zhuju.jpushreceiver;

import android.app.Notification;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.util.Log;

import androidx.annotation.RequiresApi;

import com.alibaba.fastjson.JSONObject;
import com.yzt.zhuju.NomiApplication;
import com.yzt.zhuju.RXingUtils;

import cn.jpush.android.api.CmdMessage;
import cn.jpush.android.api.CustomMessage;
import cn.jpush.android.api.JPushMessage;
import cn.jpush.android.api.NotificationMessage;
import cn.jpush.android.service.JPushMessageReceiver;

/**
 * 极光推送
 */
public class PushMessageReceiver extends JPushMessageReceiver {

    private static final String TAG = "PushMessageReceiver";

    // 自定义通知
    @Override
    public void onMessage(Context context, CustomMessage customMessage) {
        Log.e(TAG, "[onMessage] " + customMessage);
    }

    // 系统通知  点击事件处理
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    public void onNotifyMessageOpened(Context context, NotificationMessage message) {
        Log.e(TAG, "[onNotifyMessageOpened] " + message);
        Intent intent = null;
        final org.json.JSONObject jsonObject;
        try {
            jsonObject = new org.json.JSONObject(message.notificationExtras);
            int type = jsonObject.getInt("type");
            String id = jsonObject.getString("id");
//            switch (type) {
//                case PushContact.NOTIFY_REFUND_USER: //退款通知
//                    intent = new Intent(context, MentorServiceRefundDetailActivity.class);
//                    intent.putExtra(MentorServiceRefundDetailActivity.ID, id);
//                    break;
//                case 14: //咨询已完成
//                case PushContact.NOTIFY_CONSULT_END_USER:
//                case PushContact.NOTIFY_APPOINTMENT_TIME_CONFIRM: //预约咨询时间已确定
//                case PushContact.NOTIFY_APPOINTMENT_TIME_MODIFY: //预约咨询时间已确定
//                    intent = new Intent(context, MentorServiceOrderDetailActivity.class);
//                    intent.putExtra(MentorServiceOrderDetailActivity.DATA, id);
//                    break;
//                case PushContact.NOTIFY_MENTOR_BROWSE_USER: //咨询师浏览用户
//                    intent = new Intent(context, MentorDetailActivity.class);
//                    intent.putExtra(MentorDetailActivity.EXTRA_MENTOR_ID, id);
//                    break;
//                case PushContact.NOTIFY_FOLLOW_PUBLISH_DYNAMIC: //动态通知
//                case PushContact.NOTIFY_DYNAMIC_COMMENT: //动态收到评论通知
//                case PushContact.NOTIFY_DYNAMIC_WARM: //动态收到温暖通知
//                    intent = new Intent(context, DynamicDetailActivity.class);
//                    intent.putExtra(DynamicDetailActivity.EXTRA_DYNAMIC_ID, id);
//                    break;
//                case PushContact.NOTIFY_COUPON_TIME_OUT: //优惠券过期
//                    intent = new Intent(context, CouponActivity.class);
//                    break;
//                case PushContact.NOTIFY_MENTOR_ONLINE: //咨询师上线通知
//                    EventHelper.post(EventConstants.MAIN_PAGER, 3);
//                    EventHelper.post(EventConstants.MESSAGE_PAGER, 1);
//                    break;
//
//                // 后台推送
//                case PushConstants.SYSTEM_OBJECT_PUSH: {
//
//                    int jumpId = jsonObject.getInt("jumpId");
//
//                    // 1发现文章，2公告，3咨询师课程 4用户文章，5用户课程，6测评
//                    switch (jsonObject.getString("contentType")) {
//                        case "4": {
//                            intent = new Intent(context, JournalDetailActivity.class);
//                            intent.putExtra(JournalDetailActivity.ID, jumpId);
//                        }
//                        break;
//                        case "5": {
//                            intent = new Intent(context, CoursePackageDetailsActivity.class);
//                            intent.putExtra(CoursePackageDetailsActivity.EXTRA_COURSE_TARGET_ID, Long.parseLong("" + jumpId));
//                        }
//                        break;
//                        case "6": {
//                            intent = new Intent(context, AssessDetailActivity.class);
//                            intent.putExtra(AssessDetailActivity.EXTRA_COURSE_TARGET_ID, Long.parseLong("" + jumpId));
//                        }
//                        break;
//                    }
//                }
//                break;
//                // 用户被后台封禁
//                case PushContact.SYSTEM_USER_BAN:
//                    intent = new Intent(context, BanUserActivity.class);
//                    intent.putExtra("extra_content", jsonObject.getString("content"));
//                    break;
//            }
        } catch (Exception e) {
            e.printStackTrace();
        }
//        if (intent != null && App.isLogin()) {
//            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//            context.startActivity(intent);
//        }
    }

    @Override
    public Notification getNotification(Context context, NotificationMessage notificationMessage) {
        Log.e(TAG, "[getNotification] getNotification");
        return super.getNotification(context, notificationMessage);
    }

    @Override
    public void onMultiActionClicked(Context context, Intent intent) {
        Log.e(TAG, "[onMultiActionClicked] 用户点击了通知栏按钮");
    }

    @Override
    public void onNotifyMessageArrived(Context context, NotificationMessage message) {
        Log.e(TAG, "[onNotifyMessageArrived] " + message);
        processCustom(message.notificationExtras, context);
    }

    @Override
    public void onNotifyMessageDismiss(Context context, NotificationMessage message) {
        Log.e(TAG, "[onNotifyMessageDismiss] " + message);
    }

    @Override
    public void onRegister(Context context, String registrationId) {
        Log.e(TAG, "[onRegister] " + registrationId);
    }

    @Override
    public void onConnected(Context context, boolean isConnected) {
        Log.e(TAG, "[onConnected] " + isConnected);
        if (isConnected)
            NomiApplication.registerUserPush();
    }

    @Override
    public void onCommandResult(Context context, CmdMessage cmdMessage) {
        Log.e(TAG, "[onCommandResult] " + cmdMessage);
    }

    @Override
    public void onTagOperatorResult(Context context, JPushMessage jPushMessage) {
        TagAliasOperatorHelper.getInstance().onTagOperatorResult(context, jPushMessage);
        super.onTagOperatorResult(context, jPushMessage);
    }

    @Override
    public void onCheckTagOperatorResult(Context context, JPushMessage jPushMessage) {
        TagAliasOperatorHelper.getInstance().onCheckTagOperatorResult(context, jPushMessage);
        super.onCheckTagOperatorResult(context, jPushMessage);
    }

    @Override
    public void onAliasOperatorResult(Context context, JPushMessage jPushMessage) {
        TagAliasOperatorHelper.getInstance().onAliasOperatorResult(context, jPushMessage);
        super.onAliasOperatorResult(context, jPushMessage);
    }

    @Override
    public void onMobileNumberOperatorResult(Context context, JPushMessage jPushMessage) {
        TagAliasOperatorHelper.getInstance().onMobileNumberOperatorResult(context, jPushMessage);
        super.onMobileNumberOperatorResult(context, jPushMessage);
    }

    /**
     * 极光 自定义推送
     */
    private void processCustom(String customMessage, Context context) {

        // 获取消息传递值
        String customContent = JSONObject.parse(customMessage).toString();

        if (!RXingUtils.isLogin()) {
        }

//        PushCustomContentBean bean = null;
//        try {
//            bean = new Gson().fromJson(customContent, PushCustomContentBean.class);
//            bean.setMasterId(App.user.getId());
//        } catch (Exception e) {
//            e.printStackTrace();
//            return;
//        }
//
//        if (bean.getType() == 0) {
//            return;
//        }
//
//        if (bean.getType() == PushConstants.TYPE_DYNAMIC_POINT_SHOW) { // 23
//            //小红点推送，不计入db中
//            UserBehaviorHelper.setDynamicPointShow(true);
//            EventHelper.postByTag(EventConstants.REFRESH_MAIN_MSG_INDICATOR);
//            return;
//        }
//
//        if (bean.getType() == PushConstants.POUR_MENTOR_NOTIFY_NUMBER) { // 371
//            //倾诉推送 通知人数
//            EventHelper.post(EventConstants.POUR_OUT_EXTRA_NOTIFY_NUMBER, bean.getNoticeCount());
//            return;
//        }
//
//        if (bean.getType() == PushConstants.POUR_MENTOR_SIGN_NUMBER) { // 372
//            //倾诉推送 报名人数
//            EventHelper.post(EventConstants.POUR_OUT_EXTRA_SIGN_UP_NUMBER, bean.getSignCount());
//            return;
//        }
//
//        if (bean.getType() == 373) {
//            //倾诉推送给老师的
//            return;
//        }
//
//        if (bean.getType() == PushContact.SYSTEM_USER_BAN) { // 45
//            // 用户被后台封禁
//            EventHelper.post(EventConstants.POUR_OUT_EXTRA_NOTIFY_NUMBER, bean.getNoticeCount());
//            Intent intent = new Intent(context, BanUserActivity.class);
//            intent.putExtra("extra_content", bean.getContent());
//            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//            context.startActivity(intent);
//            return;
//        }
//
////        if (bean.getType() == PushContact.SYSTEM_USER_BAN) { // 45
////            // 用户被后台封禁
////            EventHelper.post(EventConstants.POUR_OUT_EXTRA_NOTIFY_NUMBER, bean.getNoticeCount());
////            Intent intent = new Intent(context, BanUserActivity.class);
////            intent.putExtra("extra_content", bean.getContent());
////            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
////            context.startActivity(intent);
////            return;
////        }
//
//        //订单通知（订单状态发生变化）
//        if (bean.getType() == PushConstants.TYPE_ORDER) {
//            int orderUnRead = UserBehaviorHelper.getOrderUnreadCount();
//            orderUnRead++;
//            UserBehaviorHelper.putOrderUnreadCount(orderUnRead);
//            //刷新聊天页面（免费聊天次数逻辑）
//            EventHelper.post(EventConstants.REFRESH_FACE_MENTOR, bean.getMentorUserId());
//        } else {
//            int platformSystemUnRead = UserBehaviorHelper.getPlatformSystemUnreadCount();
//            platformSystemUnRead++;
//            UserBehaviorHelper.putPlatformSystemUnreadCount(platformSystemUnRead);
//        }
//
//        //插入到数据库中
//        DaoManager.getInstance().getPushCustomContentBeanDao().insert(bean);
//        //刷新MainActivity的小红点
//        EventHelper.postByTag(EventConstants.REFRESH_MAIN_MSG_INDICATOR);
//        //刷新Conversation
//        EventHelper.postByTag(EventConstants.REFRESH_CHAT_TIP_BY_PUSH);
    }
}
